System, device, and method for maintaining communication sessions in a communication system

ABSTRACT

A communication session is maintained through a disruption by saving state information related to the communication session upon detecting the disruption and subsequently using the saved state information to re-establish the communication session. The communication session may be associated with an access point device in a wireless communication system, and the communication session may be re-established through the same or a different access point device in the wireless communication system.

CROSS-REFERENCE TO RELATED APPLICATION(S)

[0001] The present application may be related to the following commonlyowned United States patent application, which is hereby incorporatedherein by reference in its entirety:

[0002] U.S. patent application Ser. No. ______ entitled SYSTEM, DEVICE,AND METHOD FOR PROVIDING NETWORK ACCESS IN A COMMUNICATION SYSTEM, filedon even date herewith in the names of Franco Travostino and Robert L.Myers.

FIELD OF THE INVENTION

[0003] The present invention relates generally to communication systems,and more particularly to maintaining communication sessions in acommunication system.

BACKGROUND OF THE INVENTION

[0004] In a typical wireless communication system, wireless terminalequipment (TE) devices access a host computer through various accesspoint (AP) devices. The AP devices communicate with the TE devices usinga wireless communication protocol, and communicate with the hostcomputer using some other protocol, such as a local area network (LAN)protocol. Each communication protocol is typically composed of variousprotocol layers in what is often referred to as a protocol stack. Theprotocol layers are typically implemented in software, and requirecertain processing resources as well as certain memory resources (e.g.,for the storage of state information and data). The AP devices typicallysupport and implement the full wireless communication protocol stack,and therefore the AP devices are typically complex devices that requiresubstantial processing and memory resources.

[0005] One wireless communication protocol is commonly known asBluetooth. Bluetooth defines a wireless (RF) protocol layer as well asvarious combinations of higher protocol layers (referred to in Bluetoothas profiles) for using Bluetooth in various applications. Bluetooth isdescribed in a Bluetooth core specification entitled Specification ofthe Bluetooth System Core, Volume 1.0 B, dated Dec. 1, 1999, which ishereby incorporated herein by reference in its entirety. Bluetoothprofiles are described in a Bluetooth profiles specification entitledSpecification of the Bluetooth System Profiles, Volume 1.0 B, dated Dec.1, 1999, which is hereby incorporated herein by reference in itsentirety. For convenience, the Bluetooth core specification and theBluetooth profiles specification are referred to hereinaftercollectively as the Bluetooth specification.

[0006]FIG. 1 shows a representation of a conventional wirelesscommunication system 100 in accordance with an implementation ofBluetooth. The TE device 102 accesses the host computer 108 via the APdevice 106, using a wireless communication protocol to communicate withthe AP device 106 over a wireless medium 104 (e.g., RF through air,infrared through air).

[0007] The AP device 106 typically implements the full wirelesscommunication protocol stack. Therefore, the AP device 106 is typicallya complex device having substantial processing and memory resources.

[0008]FIG. 2 illustrates the various protocol stacks that are supportedand implemented by the TE device 102, the AP device 106, and the hostcomputer 108 within the conventional wireless communication system 100in accordance with a LAN Access Profile of the Bluetooth specification.

[0009] The TE device 102 includes, among other things, basebandtransceiver logic 202 with associated host controller interface (HCI)firmware 204 for sending and receiving protocol messages over thewireless medium 104, HCI driver logic 206, logical link control andadaptation protocol (L2CAP) logic 208 for providing connection-orientedor connectionless layer 2 services, link manager protocol (LMP) logic210, service discovery protocol (SDP) logic 212, RF communication logic214 for emulating multiple RS-232 connections over L2CAP, Point-to-PointProtocol (PPP) logic 216, Internet Protocol (IP) logic 218, TCP/UDPlogic 220, and a number of applications 222.

[0010] The AP device 106 includes, among other things, a first protocolstack for communicating with the TE device 102 and a second protocolstack for communicating with the host computer 108. The first protocolstack includes, among other things, baseband transceiver logic 224 withassociated HCI firmware 226 for sending and receiving protocol messagesover the wireless medium 104, HCI driver logic 228, L2CAP logic 230, LMPlogic 232, SDP logic 234, RF logic 236, PPP logic 238, IP logic 240, andDynamic Host Configuration Protocol (DHCP) logic 242. The secondprotocol stack includes, among other things, LAN logic 244, IP logic240, Proxy ARP (Address Resolution Protocol) logic 246 for resolvingaddresses, and AAA (authentication, authorization, and accounting) logic248.

[0011] The host computer 108 includes, among other things, LAN logic250, IP logic 252, TCP/UDP logic 254, and a number of applications 256.

[0012] The wireless communication system typically includes mechanismsby which the AP devices decide which AP device is to handlecommunications for the TE device. For example, the TE device may begiven access to the host computer through the closest AP device basedupon some predetermined criteria (e.g., receive signal strength).

[0013] During operation of the wireless communication system, it maybecome necessary or desirable for the TE device to access the hostcomputer through different AP devices at different times. For example,as the TE device moves about within the wireless communication system,the proximity of the TE device to various AP devices changes, making itnecessary or desirable to move communications from an old AP device to anew AP device. Similarly, certain network events may disruptcommunications between the TE device and the host computer (e.g., acommunication failure between the TE device and the AP device, a failureor inactivation of the AP device, or a communication failure between theAP device and the host computer), making it necessary or desirable tomove communications from the old AP device to the new AP device.

[0014] The wireless communication protocol typically includes mechanismsfor moving communications from an old AP device to a new AP device. Forconvenience, this movement of communications from the old AP device tothe new AP device is referred to herein as a “hand-off” from the old APdevice to the new AP device. A “hand-off” from the old AP device to thenew AP device may involve such things as determining the new AP devicefor the TE device (e.g., determining the next-closest AP device to theTE device) and moving communications from the old AP device to the newAP device.

[0015] Because the AP devices typically implement the full wirelesscommunication protocol, the AP device through which the TE deviceaccesses the host computer typically maintains substantial stateinformation relating to the TE device. When there is a “hand-off” fromthe old AP device to the new AP device, state information maintained bythe old AP device is lost, and the new AP device must re-establishcommunications for the TE device anew. Thus, the “hand-off” from the oldAP device too the new AP device may substantially disrupt communicationsbetween the TE device and the host computer. In a Bluetooth wirelesscommunication system implemented according to current specifications, itwould not be uncommon for this disruption to last an unacceptably long5-10 seconds.

SUMMARY OF THE INVENTION

[0016] In an embodiment of the present invention, the AP devices work incombination with a back end (BE) device to provide wireless access forthe TE devices. Specifically, the wireless communication protocol stackis divided between the AP devices and the BE device, with the AP devicessupporting and implementing a first protocol layer of the wirelesscommunication protocol stack (typically the lowest protocol layer of thewireless communication protocol stack), and the BE device supporting andimplementing a second protocol layer of the wireless communicationprotocol stack (typically the upper layers of the wireless communicationprotocol stack). Each AP device is coupled to the BE device over acommunication network, such as an Ethernet LAN, and establishes acommunication connection to the BE device. Protocol messages received bythe AP devices from the TE devices are forwarded by the AP devices tothe BE device over the pre-established communication connections, andprotocol messages received by the AP devices from the BE device over thepre-established communication connections are forwarded by the APdevices to the TE devices. The AP devices are therefore “thin” AP (TAP)devices that support and implement only a small subset of the wirelesscommunication protocol stack and therefore require minimal processingand memory resources. This allows the TAP devices to be small, simple,inexpensive devices that can be placed unobtrusively and ubiquitouslywithin a networking environment. The BE device includes sufficientprocessing and memory resources for supporting many TE devices accessingthe network through multiple TAP devices, and communicates with the hostcomputer on behalf of the TE devices. It should be noted that thisdivision of the wireless communication protocol stack between the TAPdevices and the BE device is transparent to the TE devices and to thehost computer, which require no changes to operate in such a wirelesscommunication system.

[0017] When there is a disruption in communication for a particular TEdevice or a “hand-off” is otherwise desirable or necessary, the BEdevice saves state information relating to the TE device, and uses thesaved state information to subsequently re-establish communication withthe TE device through the same or a different TAP device.

[0018] A method for maintaining a communication session involvesdetermining that the communication session is disrupted, saving stateinformation relating to the communication session, and subsequentlyre-establishing the communication session using the saved stateinformation. Determining that the communication session is disrupted mayinvolve monitoring for a predetermined signal and failing to receive thepredetermined signal for a predetermined amount of time. Saving thestate information relating to the communication session may involvesaving the state information for up to a predetermined amount of time.The communication session may be associated with an access point device,and the communication session may be re-established through the same ora different access point device.

[0019] A device for maintaining a communication session includes sessionmonitoring logic for determining that the communication session isdisrupted, state maintenance logic for saving state information relatingto the communication session, and session re-establishment logic forsubsequently re-establishing the communication session using the savedstate information. Determining that the communication session isdisrupted may involve monitoring for a predetermined signal and failingto receive the predetermined signal for a predetermined amount of time.Saving the state information relating to the communication session mayinvolve saving the state information for up to a predetermined amount oftime. The communication session may be associated with an access pointdevice, and the communication session may be re-established through thesame or a different access point device. The device may be a back enddevice that implements upper protocol layers of a wireless communicationprotocol, such as Bluetooth.

[0020] A computer program for controlling a computer system to maintaina communication session includes session monitoring logic fordetermining that the communication session is disrupted, statemaintenance logic for saving state information relating to thecommunication session, and session re-establishment logic forsubsequently re-establishing the communication session using the savedstate information. Determining that the communication session isdisrupted may involve monitoring for a predetermined signal and failingto receive the predetermined signal for a predetermined amount of time.Saving the state information relating to the communication session mayinvolve saving the state information for up to a predetermined amount oftime. The communication session may be associated with an access pointdevice, and the communication session may be re-established through thesame or a different access point device. The device may also includeprotocol logic for implementing upper protocol layers of a wirelesscommunication protocol, such as Bluetooth.

[0021] A communication system includes a number of access point devicesthat each implement a lower protocol layer of a wireless communicationprotocol and a back end device that implements upper protocol layers ofthe wireless communication protocol on behalf of the number of accesspoint devices. The back end device saves state information for acommunication session upon detecting a disruption of the communicationsession and subsequently re-establishes the communication session usingthe saved state information. The communication session may be associatedwith an access point device, and the back end device may re-establishthe communication session through the same or a different access pointdevice. The communication session may be associated with a terminalequipment device that communicates with the back end device through anaccess point device, in which case the back end device may determinethat the communication session is disrupted upon failing to receive apredetermined signal from the terminal equipment device for apredetermined amount of time.

BRIEF DESCRIPTION OF THE DRAWINGS

[0022] In the accompanying drawings:

[0023]FIG. 1 is a system diagram showing an example of a conventionalwireless communication system;

[0024]FIG. 2 is a block diagram showing sample protocols stacks ofvarious devices in a conventional wireless communication system;

[0025]FIG. 3 is a system diagram showing an example of a wirelesscommunication system in which an access point device implements a lowerprotocol layer of a wireless communication protocol and a back enddevice implements upper protocol layers of the wireless communicationprotocol in accordance with an embodiment of the present invention;

[0026]FIG. 4 is a block diagram showing sample protocol stacks of theaccess point device and the back end device in accordance with anembodiment of the present invention;

DETAILED DESCRIPTION OF A PREFERRED EMBODIMENT

[0027] In an embodiment of the present invention, the AP devices work incombination with a back end (BE) device to provide wireless access forthe TE devices. Specifically, the wireless communication protocol stackis divided between the AP devices and the BE device, with the AP devicessupporting and implementing a first protocol layer of the wirelesscommunication protocol stack (typically the lowest protocol layer of thewireless communication protocol stack), and the BE device supporting andimplementing a second protocol layer of the wireless communicationprotocol stack (typically the upper layers of the wireless communicationprotocol stack). Each AP device is coupled to the BE device over acommunication network, such as an Ethernet LAN, and establishes acommunication connection to the BE device. Protocol messages received bythe AP devices from the TE devices are forwarded by the AP devices tothe BE device over the pre-established communication connections, andprotocol messages received by the AP devices from the BE device over thepre-established communication connections are forwarded by the APdevices to the TE devices. The AP devices are therefore “thin” AP (TAP)devices that support and implement only a small subset of the wirelesscommunication protocol stack and therefore require minimal processingand memory resources. This allows the TAP devices to be small, simple,inexpensive devices that can be placed unobtrusively and ubiquitouslywithin a networking environment. The BE device includes sufficientprocessing and memory resources for supporting many TE devices accessingthe network through multiple TAP devices, and communicates with the hostcomputer on behalf of the TE devices. It should be noted that thisdivision of the wireless communication protocol stack between the TAPdevices and the BE device is transparent to the TE devices and to thehost computer, which require no changes to operate in such a wirelesscommunication system.

[0028] Bluetooth is one wireless communication system that can benefitfrom such division of the wireless communication protocol stack betweenthe AP devices and the BE device. Bluetooth is a wireless accessprotocol that uses multiple AP devices spread throughout a networkingenvironment to provide wireless access for portable TE devices. Theeffectiveness of the Bluetooth communication system is dependent to alarge degree on the number and placement of the AP devices within thenetworking environment. Increased performance can be realized byincreasing the number of AP devices. Because the AP devices aretypically complex devices having substantial processing and memoryresources, increasing the number of AP devices substantially increasesthe overall cost of the communication system. However, by using TAPdevices that are small, simple, and inexpensive, it is possible toincrease the number of AP devices without unduly increasing the overallcost of the communication system. For convenience, various embodimentsof the invention are described herein in the context of a Bluetoothwireless communication system.

[0029] In an embodiment of the present invention, the wirelesscommunication protocol stack (e.g., Bluetooth) is divided between TAPdevices and a BE device. Each TAP device establishes a communicationconnection to the BE device. In a typical embodiment, the TAP devicescommunicate with the BE device over an Ethernet LAN, and thepre-established communication connections are Point-to-Point Protocol(PPP) connections that are established using a PPP-over-Ethernet (PPPoE)control protocol (referred to hereinafter as PPP/PPPoE communicationconnections). Protocol messages received by the TAP devices from the TEdevices are forwarded by the TAP devices to the BE device over thepre-determined PPP/PPPoE communication connections, and protocolmessages received by the TAP devices from the BE device over thepre-determined PPP/PPPoE communication connections are forwarded by theTAP devices to the TE devices.

[0030]FIG. 3 shows a representation of a wireless communication system300 in which the Bluetooth wireless communication protocol stack isdivided between TAP devices and a BE device. The TE device 102 accessesthe host computer 108 via the TAP device 306 using the Bluetoothwireless communication protocol. The TAP device 306 establishes aPPP/PPPoE communication connection to the BE device 307. Protocolmessages received by the TAP device 306 from the TE device 102 areforwarded by the TAP device 306 to the BE device 307 over thepre-determined PPP/PPPoE communication connection, and protocol messagesreceived by the TAP device 306 from the BE device 307 over thepre-determined PPP/PPPoE communication connection are forwarded by theTAP device 306 to the TE device 102. The BE device 307 includessufficient processing and memory resources for supporting the TE device102 and may other TE devices (not shown) accessing the network throughthe TAP device 306 and other TAP devices (not shown), and communicateswith the host computer 108 on behalf of the TE device 102.

[0031]FIG. 4 illustrates the various protocol stacks that are supportedand implemented by the TE device 102, the TAP device 306, the BE device307, and the host computer 108 within the wireless communication system300 in accordance with a LAN Access Profile of the Bluetoothspecification. It should be noted that the protocol stacks in both theTE device 102 and the host computer 108 are the same in both theconventional communication system 100, as shown in FIG. 2, and thecommunication system 300, as shown in FIG. 4.

[0032] The TE device 102 includes, among other things, basebandtransceiver logic 202 with associated HCI firmware 204 for sending andreceiving protocol messages over the wireless medium 104, HCI driverlogic 206, L2CAP logic 208, LMP logic 210, SDP logic 212, RF logic 214,PPP logic 216, IP logic 218, TCP/UDP logic 220, and a number ofapplications 222.

[0033] The TAP device 306 includes, among other things, a first protocolstack for communicating with the TE device 102 and a second protocolstack for communicating with the BE device 307. The first protocol stackimplements the lower protocol layer of the wireless communicationprotocol, and includes, among other things, baseband transceiver logic224 with associated HCI firmware 226 for sending and receiving protocolmessages over the wireless medium 104. The second protocol stackincludes, among other things, LAN logic 402, PPPoE control protocollogic 404 for establishing a PPP/PPPoE communication connection to theBE device 307 over the LAN, and PPP logic 406 for transferring protocolmessages between the TE device 102 and the BE device 307.

[0034] The BE device 307 includes, among other things, a first protocolstack for communicating with the TAP device 306 and a second protocolstack for communicating with the host computer 108. The first protocolstack implements the PPP/PPPoE protocols for communicating with the TAPdevice 306 and also implements the upper protocol layers of the wirelesscommunication protocol, and includes, among other things, LAN logic 244,PPPoE control protocol logic 410, PPP logic 412, HCI driver logic 228,L2CAP logic 230, LMP logic 232, SDP logic 234, RF logic 236, PPP logic238, IP logic 240, and DHCP logic 242. The second protocol stackincludes LAN logic 244, proxy ARP logic 246, and AAA logic 248.

[0035] The host computer 108 includes, among other things, LAN logic250, IP logic 252, TCP/UDP logic 254, and a number of applications 256.

[0036] As described in the related application entitled SYSTEM, DEVICE,AND METHOD FOR PROVIDING NETWORK ACCESS IN A COMMUNICATION SYSTEM, whichwas incorporated by reference above, the TAP device 306 and the BEdevice 307 interoperate to enable communication between the TE device102 and the host computer 108. Specifically, protocol messages receivedby the TAP device 306 from the TE device 102 are forwarded by the TAPdevice 306 to the BE device 307 over the pre-established communicationconnection, and protocol messages received by the TAP device 306 fromthe BE device 307 over the pre-established communication connection areforwarded by the TAP device 306 to the TE device 102.

[0037] It should be noted that the TAP device 306 includes very littlelogic, and the logic that is included in the TAP device 306 is notrequired to maintain substantial state information. Essentially, the TAPdevice 306 is only responsible for managing radio frequencies,amplifying signal over noise, performing retransmissions, establishingand maintaining the PPP/PPPoE connection to the BE device, andtransferring protocol messages between the TE devices and the BE device.State information required by the TAP device 306 includes such things asPPP/PPPoE session identifier and settings (e.g., MTU), basebandretransmission state, and ACL/SCO mappings and channel properties forthe LMP. Certain state information, such as the PPP/PPPoE sessionidentifier and settings and the ACL/SCO mappings and channel propertiesare maintained by the BE device 307, and can therefore be recovered bythe TAP device 306 from the BE device 307 rather than maintained by theTAP device 306.

[0038] On the other hand, the BE device 307 includes substantial logicand maintains substantial state information. The BE device 307 providesor may provide various state-based services. DHCP services typicallyinclude such things as reserving/allocating IP address for the TEdevices and optimizing for use/re-use of the IP address space. AAAservices may include such things as implementing an AAA client,implementing a remote AAA server, or implementing whole serverfunctionality (e.g., for sharing policy information with other BEdevices via a distributed file system). Proxy ARP services typicallyinclude returning TE device MAC addresses in response to queriesreceived from the host computer. SDP services typically include suchthings as maintaining a database of services (such as Bluetoothservices) and processing queries to the database (e.g., keyed on the TAPdevice from which the query is received). RF services typically includetracking existing sessions over the RS-232 emulation. PPP servicestypically include maintaining session identifier and settings (e.g.,MTU) for PPP connections between the TE devices and the BE device. LMPservices typically include such things as a link key, encryption status,encryption key, encryption key size, QoS classes, and hold/sniff/parktoggles. L2CAP services typically include such things as packetre-assembly, upper-protocol and lower-protocol state machines,connection information for connection-oriented channels, and MTU and QoSclasses. PPP/PPPoE services typically include maintaining sessionidentifier and settings for the PPP/PPPoE connections to the TAPdevices. Additional services may include such things as network addresstranslation (NAT), firewall functionality, configuration/managementservices (e.g., via SNMP), and BE device pooling (i.e., maintainingmultiple BE devices for aggregation and load balancing).

[0039] During operation of the wireless communication system,communications between the TE device 102 and the BE device 307 via theTAP device 306 may be disrupted. Such a disruption may be caused, forexample, by a failure or inactivation of the TE device 102, movement ofthe TE device 102 away from the TAP device 306, a communication failurebetween the TE device 102 and the TAP device 306 (e.g., obstruction orinterference), a failure or inactivation of the TAP device 306, acommunication failure between the TAP device 306 and the BE device 307(e.g., a LAN failure), or a failure of the BE device 307.

[0040] In an embodiment of the invention, when the BE device 307determines that communication with the TE device 102 has been disrupted,the BE device 307 saves state information for the TE device 102 ratherthan, for example, terminating communication with the TE device 102 andsimply dropping all state information relating to the TE device 102. TheBE device 307 uses the saved state information to subsequentlyre-establish communication with the TE device 102. The BE device 307 mayre-establish communication with the TE device 102 through the same TAPdevice 306 or through another TAP device. In order to prevent the stateinformation from becoming “stale,” the BE device 307 typically saves thestate information for up to a predetermined amount of time, after whichthe state information is dropped and is not used to re-establishcommunications with the TE device 102.

[0041] In an embodiment of the present invention, the BE device 307determines that communication with the TE device 102 has been disruptedbased upon a “heartbeat” signal that is transmitted by the TE device102. Specifically, in accordance with Bluetooth, the TE device 102typically transmits a periodic “heartbeat” signal. Among other things,the “heartbeat” signal indicates to the BE device 307 that the TE device102 is active and that there is a communication path from the TE device102 through to the BE device 307. The BE device 307 monitors for this“heartbeat” signal from the TE device 102. If the BE device 307 fails toreceive the “heartbeat” signal from the TE device 102 for apredetermined amount of time, then the BE device 307 determines thatcommunication with the TE device 102 has been disrupted. Such a failureto receive the “heartbeat” signal from the TE device 102 may be caused,for example, by a failure or inactivation of the TE device 102, movementof the TE device 102 away from the TAP device 306, a communicationfailure between the TE device 102 and the TAP device 306 (e.g.,obstruction or interference), a failure or inactivation of the TAPdevice 306, a communication failure between the TAP device 306 and theBE device 307 (e.g., a LAN failure), or a failure of the BE device 307.

[0042] Similarly, during operation of the wireless communication system,it is sometimes necessary or desirable to perform a “hand-off” from oneTAP device to another TAP device. For example, a “hand-off” may benecessary or desirable due to movement of the TE device 102 away fromthe TAP device 306 or interference affecting communication between theTE device 102 and the TAP device 306.

[0043] In an embodiment of the present invention, when the BE device 307determines that a “hand-off” is necessary or desirable, the BE device307 saves the state information for the TE device 102 and uses the savedstate information to subsequently re-establish communication with the TEdevice 102. The BE device 307 may re-establish communication with the TEdevice 102 through the same TAP device 306 or through another TAPdevice. In order to prevent the state information from becoming “stale,”the BE device 307 typically saves the state information for up to apredetermined amount of time, after which the state information isdropped and is not used to re-establish communications with the TEdevice 102.

[0044] In a conventional wireless communication system in which stateinformation is not saved for use in re-establishing communication withthe TE device, a “hand-off” is an expensive operation in terms of timeand disruption to communications. Therefore, in such a conventionalwireless communication system, a “hand-off” is typically performed onlywhen necessary.

[0045] In an embodiment of the present invention in which the BE device307 saves state information for the TE device 102 and uses the stateinformation to subsequently re-establish communication with the TEdevice 102, a “hand-off” is a less expensive operation in terms of timeand disruption to communications. Therefore, in various embodiments ofthe present invention, “hand-offs” may be used more liberally withoutunduly disrupting communications.

[0046] Thus, when performed in accordance with an embodiment of thepresent invention, “hand-offs” may be used to move TE devices among andbetween the various TAP devices to support various types of operationsthat would otherwise have been impractical in a conventional wirelesscommunication system. Because the BE device 307 saves state informationfor the TE device 102 and uses the state information to re-establishcommunication with the TE device 102, the “hand-offs” can be completedquickly and with relatively little disruption to communication.

[0047] One type of operation is congestion avoidance. For example,assuming the TE device 102 is able to communicate through two (or more)TAP devices at a particular time, a “hand-off” may be used todynamically move the TE device 102 from a congested TAP device to anuncongested TAP device.

[0048] Another type of operation is load balancing. For example,assuming the TE device 102 is able to communicate through two (or more)TAP devices at a particular time, a “hand-off” may be used todynamically move the TE device 102 from one TAP device to another TAPdevice based upon load balancing concerns.

[0049] Yet another type of operation is for supporting multipleoverlapping systems. For example, the wireless communication service maybe provided through multiple overlapping systems from the same ordifferent service providers. A “hand-off” may be used to dynamicallymove the TE device 102 to a preferred system or service provider whenthe TE device 102 is able to communicate with the preferred system orservice provider, although the TE device 102 may be given access througha different system or service provider when the TE device 102 is unableto communicate with the preferred system or service provider.

[0050] Still another type of operation is cost control. For example, theTE device 102 may be charged for accessing the wireless communicationsystem, with different charges applying to different TAP devices. A“hand-off” may be used to dynamically move the TE device 102 from a moreexpensive TAP device to a less expensive TAP device when the TE device102 is able to communicate through the less expensive TAP device.

[0051] In any case, when the BE device 307 detects a disruption ordetermines that a “hand-off” is otherwise necessary or desirable, the BEdevice 307 saves state information for the TE device 102 and uses thesaved state information for subsequently re-establishing communicationwith the TE device 102 through the same or a different TAP device.

[0052] In the event that the BE device 307 re-establishes communicationwith the TE device 102 over the same TAP device 306, there isessentially no change within the BE device 307. The state informationfor the TE device 102 is associated with the same TAP device 306 and thesame PPP/PPPoE communication connection.

[0053] In the event that the BE device 307 re-establishes communicationwith the TE device 102 over a new TAP device, the BE device 307essentially re-maps the state information from the old TAP device to thenew TAP device. Thus, the state information for the TE device 102 isassociated with the new TAP device and its corresponding PPP/PPPoEcommunication connection. Certain state information maintained by theold TAP device, such as retransmission state information, is lost duringthis “hand-off,” although the retransmission state information is notneeded by the new TAP device or by the BE device 307 in order to restorecommunication with the TE device 102. Certain state informationmaintained by the old TAP device, such as ACL/SCO mappings and channelproperties, may be recovered by the new TAP device from the BE device307, which also maintains such information. Thus, such information isnot lost during the “hand-off” from the old TAP device to the new TAPdevice.

[0054]FIG. 5 shows sample BE device logic 500 for maintaining stateinformation for the TE device 102 during a disruption or “hand-off.”Beginning at block 502, and upon determining that communication with theTE device has been disrupted or that a “hand-off” is desirable orneeded, in block 504, the logic saves state information for the TEdevice, in block 506. Upon determining a TAP device for re-establishingcommunications with the TE device, in block 508, the logic determineswhether the TAP device for re-re-establishing communications with the TEdevice is the same TAP device or a different TAP device, in block 510.If the TAP device for re-establishing communications with the TE deviceis the same TAP device (YES in block 510), then the logic re-establishescommunication with the TE device using the saved state information, inblock 514. If the TAP device for re-establishing communications with theTE device is a different TAP device (NO in block 510), then the logicre-maps the state information for the TE device from the old TAP deviceto the new TAP device, in block 512, and re-establishes communicationwith the TE device using the saved state information, in block 514. Thelogic 500 terminates in block 599.

[0055] The ability of the BE device 307 to save state information forthe TE device 102 enables other types of operations that aretangentially related to the “hand-off” procedure. Specifically, the BEdevice 307 may save state information and other information (e.g.,date/time, TAP identification information) for purposes other than, orin addition to, re-establishing communication with the TE device 102.Among other things, the saved information may be used for accountingpurposes (e.g., monitoring network access, monitoring network usage,billing), network management purposes (e.g., traffic loading evaluation,congestion control, network planning), user tracking purposes (e.g.,tracking and logging user positions and movements for security,auditing, and other reasons, for example, to determine where an intruderis or has been), and user locating purposes (e.g., locating the TEdevice 102 based upon the TAP device through which the TE device 102 iscommunicating, for example, to find a user in an emergency situation),to name but a few.

[0056] It should be noted that the protocol stacks shown and describedwith reference to FIG. 2 and FIG. 4 are exemplary of the LAN AccessProfile of the Bluetooth specification. However, the present inventioncan be applied to other Bluetooth profiles as well as to othercommunication protocols and profiles. Typically, embodimentsimplementing other Bluetooth profiles require appropriate changes to atleast the upper protocol layers of the TE device 102 and the BE device307.

[0057] In the described embodiments, the TAP devices are coupled to theBE device over an Ethernet LAN and communicate with the BE device usingPPP/PPPoE communication connections. However, the present invention isin no way limited by the way in which the TAP devices communicate withthe BE device. The TAP devices can communicate with the BE device usingany of a variety of communication technologies and protocols.

[0058] Although various aspects of the present invention are describedwith reference to a Bluetooth wireless communication protocol, variousalternative embodiments of the invention may use other protocols,including modifications and derivations of the Bluetooth wirelesscommunication protocol.

[0059] It should be noted that the term “packet” is used herein todescribe a communication message that may be used by a communicationdevice (e.g., created, transmitted, received, stored, or processed bythe communication device) or conveyed by a communication medium, andshould not be construed to limit the present invention to any particularcommunication message type, communication message format, orcommunication protocol. Thus, a communication message may include,without limitation, a frame, packet, datagram, user datagram, cell, orother type of communication message.

[0060] It should also be noted that the logic flow diagrams are usedherein to demonstrate various aspects of the invention, and should notbe construed to limit the present invention to any particular logic flowor logic implementation. The described logic may be partitioned intodifferent logic blocks (e.g., programs, modules, functions, orsubroutines) without changing the overall results or otherwise departingfrom the true scope of the invention. Often times, logic elements may beadded, modified, omitted, performed in a different order, or implementedusing different logic constructs (e.g., logic gates, looping primitives,conditional logic, and other logic constructs) without changing theoverall results or otherwise departing from the true scope of theinvention.

[0061] The present invention may be embodied in many different forms,including, but in no way limited to, computer program logic for use witha processor (e.g., a microprocessor, microcontroller, digital signalprocessor, or general purpose computer), programmable logic for use witha programmable logic device (e.g., a Field Programmable Gate Array(FPGA) or other PLD), discrete components, integrated circuitry (e.g.,an Application Specific Integrated Circuit (ASIC)), or any other meansincluding any combination thereof. In a typical embodiment of thepresent invention, predominantly all of the BE device logic isimplemented as a set of computer program instructions that is convertedinto a computer executable form, stored as such in a computer readablemedium, and executed by a microprocessor within the BE device 307 underthe control of an operating system.

[0062] Computer program logic implementing all or part of thefunctionality previously described herein may be embodied in variousforms, including, but in no way limited to, a source code form, acomputer executable form, and various intermediate forms (e.g., formsgenerated by an assembler, compiler, linker, or locator). Source codemay include a series of computer program instructions implemented in anyof various programming languages (e.g., an object code, an assemblylanguage, or a high-level language such as Fortran, C, C++, JAVA, orHTML) for use with various operating systems or operating environments.The source code may define and use various data structures andcommunication messages. The source code may be in a computer executableform (e.g., via an interpreter), or the source code may be converted(e.g., via a translator, assembler, or compiler) into a computerexecutable form.

[0063] The computer program may be fixed in any form (e.g., source codeform, computer executable form, or an intermediate form) eitherpermanently or transitorily in a tangible storage medium, such as asemiconductor memory device (e.g., a RAM, ROM, PROM, EEPROM, orFlash-Programmable RAM), a magnetic memory device (e.g., a diskette orfixed disk), an optical memory device (e.g., a CD-ROM), a PC card (e.g.,PCMCIA card), or other memory device. The computer program may be fixedin any form in a signal that is transmittable to a computer using any ofvarious communication technologies, including, but in no way limited to,analog technologies, digital technologies, optical technologies,wireless technologies (e.g., Bluetooth), networking technologies, andinternetworking technologies. The computer program may be distributed inany form as a removable storage medium with accompanying printed orelectronic documentation (e.g., shrink wrapped software), preloaded witha computer system (e.g., on system ROM or fixed disk), or distributedfrom a server or electronic bulletin board over the communication system(e.g., the Internet or World Wide Web).

[0064] Hardware logic (including programmable logic for use with aprogrammable logic device) implementing all or part of the functionalitypreviously described herein may be designed using traditional manualmethods, or may be designed, captured, simulated, or documentedelectronically using various tools, such as Computer Aided Design (CAD),a hardware description language (e.g., VHDL or AHDL), or a PLDprogramming language (e.g., PALASM, ABEL, or CUPL).

[0065] Programmable logic may be fixed either permanently ortransitorily in a tangible storage medium, such as a semiconductormemory device (e.g., a RAM, ROM, PROM, EEPROM, or Flash-ProgrammableRAM), a magnetic memory device (e.g., a diskette or fixed disk), anoptical memory device (e.g., a CD-ROM), or other memory device. Theprogrammable logic may be fixed in a signal that is transmittable to acomputer using any of various communication technologies, including, butin no way limited to, analog technologies, digital technologies, opticaltechnologies, wireless technologies (e.g., Bluetooth), networkingtechnologies, and internetworking technologies. The programmable logicmay be distributed as a removable storage medium with accompanyingprinted or electronic documentation (e.g., shrink wrapped software),preloaded with a computer system (e.g., on system ROM or fixed disk), ordistributed from a server or electronic bulletin board over thecommunication system (e.g., the Internet or World Wide Web).

[0066] The present invention may be embodied in other specific formswithout departing from the true scope of the invention. The describedembodiments are to be considered in all respects only as illustrativeand not restrictive.

What is claimed is:
 1. A method for maintaining a communication sessionby a back end device in a communication system, the method comprising:determining that the communication session has or will be disrupted;saving state information relating to the communication session; andsubsequently re-establishing the communication session using the savedstate information.
 2. The method of claim 1, wherein determining thatthe communication session has or will be disrupted comprises:determining that the communication session has failed.
 3. The method ofclaim 2, wherein determining that the communication session has failedcomprises: monitoring for a predetermined signal; and failing to receivethe predetermined signal for a predetermined amount of time.
 4. Themethod of claim 1, wherein determining that the communication sessionhas or will be disrupted comprises: determining that it is necessary ordesirable to disrupt the communication session.
 5. The method of claim1, wherein saving the state information relating to the communicationsession comprises: saving the state information for up to apredetermined amount of time.
 6. The method of claim 1, wherein thecommunication session is associated with an access point device, andwherein re-establishing the communication session using the saved stateinformation comprises re-establishing the communication through theaccess point device.
 7. The method of claim 1, wherein the communicationsession is associated with an access point device, and whereinre-establishing the communication session using the saved stateinformation comprises re-establishing the communication session througha different access point device.
 8. The method of claim 7, whereinre-establishing the communication session through the different accesspoint device comprises: associating the state information with thedifferent access point device.
 9. The method of claim 1, wherein thecommunication session comprises a Bluetooth communication session.
 10. Adevice for maintaining a communication session, the device comprising:session monitoring logic operably coupled to determine that thecommunication session has or will be disrupted; state maintenance logicoperably coupled to save state information relating to the communicationsession; and session re-establishment logic operably coupled tosubsequently re-establish the communication session using the savedstate information.
 11. The device of claim 10, wherein the sessionmonitoring logic is operably coupled to determine that the communicationsession has failed.
 12. The device of claim 11, wherein the sessionmonitoring logic is operably coupled to monitor for a predeterminedsignal and determine that the communication session has failed uponfailing to receive the predetermined signal for a predetermined amountof time.
 13. The device of claim 10, wherein the session monitoringlogic is operably coupled to determine that it is necessary or desirableto disrupt the communication session.
 14. The device of claim 10,wherein the state maintenance logic is operably coupled to save thestate information for up to a predetermined amount of time.
 15. Thedevice of claim 10, wherein the communication session is associated withan access point device, and wherein the session re-establishment logicis operably coupled to re-establish the communication session throughthe access point device using the saved state information.
 16. Thedevice of claim 10, wherein the communication session is associated withan access point device, and wherein the session re-establishment logicis operably coupled to re-establish the communication session through adifferent access point device using the saved state information.
 17. Thedevice of claim 16, wherein the session re-establishment logic isoperably coupled to associate the state information with the differentaccess point device.
 18. The device of claim 10, wherein thecommunication session comprises a Bluetooth communication session. 19.The device of claim 10, wherein the device is a back end device thatimplements upper protocol layers of a wireless communication protocol.20. A computer program for controlling a computer system to maintain acommunication session, the computer program comprising: sessionmonitoring logic programmed to determine that the communication sessionhas or will be disrupted; state maintenance logic programmed to savestate information relating to the communication session; and sessionre-establishment logic programmed to subsequently re-establish thecommunication session using the saved state information.
 21. Thecomputer program of claim 20, wherein the session monitoring logic isprogrammed to determine that the communication session has failed. 22.The computer program of claim 21, wherein the session monitoring logicis programmed to monitor for a predetermined signal and determine thatthe communication session has failed upon failing to receive thepredetermined signal for a predetermined amount of time.
 23. Thecomputer program of claim 20, wherein the session monitoring logic isprogrammed to determine that it is necessary or desirable to disrupt thecommunication session.
 24. The computer program of claim 20, wherein thestate maintenance logic is programmed to save the state information forup to a predetermined amount of time.
 25. The computer program of claim20, wherein the communication session is associated with an access pointdevice, and wherein the session re-establishment logic is programmed tore-establish the communication session through the access point deviceusing the saved state information.
 26. The computer program of claim 20,wherein the communication session is associated with an access pointdevice, and wherein the session re-establishment logic is programmed tore-establish the communication session through a different access pointdevice using the saved state information.
 27. The computer program ofclaim 26, wherein the session re-establishment logic is programmed toassociate the state information with the different access point device.28. The computer program of claim 20, wherein the communication sessioncomprises a Bluetooth communication session.
 29. The computer program ofclaim 20, further comprising: protocol logic for implementing upperprotocol layers of a wireless communication protocol.
 30. Acommunication system comprising a number of access point devices thateach implement a first protocol layer of a wireless communicationprotocol and a back end device that implements a second protocol layerof the wireless communication protocol on behalf of the number of accesspoint devices, wherein the back end device is operably coupled to savestate information for a communication session upon determining that thecommunication session has or will be disrupted and subsequentlyre-establish the communication session using the saved stateinformation.
 31. The communication system of claim 30, wherein thecommunication session is associated with an access point device, andwherein the back end device is operably coupled to re-establish thecommunication session through the access point device.
 32. Thecommunication system of claim 30, wherein the communication session isassociated with an access point device, and wherein the back end deviceis operably coupled to re-establish the communication session through adifferent access point device.
 33. The communication system of claim 32,wherein the back end device is operably coupled to associate the savedstate information with the different access point device.
 34. Thecommunication system of claim 30, wherein the wireless communicationprotocol comprises a Bluetooth wireless communication protocol.
 35. Thecommunication system of claim 34, wherein the first protocol layer is alower protocol layer of the Bluetooth wireless communication protocol,and wherein the second protocol layer comprises an upper protocol layerof the Bluetooth wireless communication protocol.
 36. The communicationsystem of claim 30, wherein the communication session is associated witha terminal equipment device that communicates with the back end devicethrough an access point device, and wherein the back end device isoperably coupled to determine that the communication session isdisrupted upon failing to receive a predetermined signal from theterminal equipment device for a predetermined amount of time.
 37. In acommunication system in which a terminal device accesses a communicationnetwork through one of a plurality of access point devices thatimplement a first protocol layer of a wireless communication protocoland a back end device that implements a second protocol layer of thewireless communication protocol, a method for moving the terminal devicefrom a first access point device to a second access point device, themethod comprising: saving state information for the terminal device bythe back end device; terminating communication with the terminal deviceover the first access point device; and re-establishing communicationwith the terminal device over the second access point device using thesaved state information.
 38. The method of claim 37, wherein the firstaccess point device is congested, and wherein re-establishingcommunication with the terminal device over the second access pointdevice using the saved state information is done to avoid the congestionat the first access point device.
 39. The method of claim 37, whereinre-establishing communication with the terminal device over the secondaccess point device using the saved state information is done for loadbalancing purposes to split network traffic between the first accesspoint device and the second access point device.
 40. The method of claim37, wherein the first access point device and the second access pointdevice are in different service provider systems, and whereinre-establishing communication with the terminal device over the secondaccess point device using the saved state information is done to movethe terminal device to a predetermined service provider system.
 41. Themethod of claim 37, wherein re-establishing communication with theterminal device over the second access point device using the savedstate information is done for cost purposes to move the terminal deviceto a less expensive access point device.
 42. In a communication systemin which a terminal device accesses a communication network through oneof a plurality of access point devices that implement a first protocollayer of a wireless communication protocol and a back end device thatimplements a second protocol layer of the wireless communicationprotocol, a method for using information related to the terminal device,the method comprising: saving information for the terminal device by theback end device; and using the saved information.
 43. The method ofclaim 42, wherein using the saved information comprises: using the savedinformation for accounting purposes.
 44. The method of claim 42, whereinusing the saved information comprises: using the saved information fornetwork management purposes.
 45. The method of claim 42, wherein usingthe saved information comprises: using the saved information for usertracking purposes.
 46. The method of claim 42, wherein using the savedinformation comprises: using the saved information for user locatingpurposes.